#include "musicform2.h"
#include "ui_musicform2.h"


MusicForm2::MusicForm2(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MusicForm2),
    pModelForm2(new QStandardItemModel(this)) // 初始化模型
{
    ui->setupUi(this);
    pModelForm2->setColumnCount(6); // 设置列数
    QStringList list2 = QStringList() << "ID" << "歌曲名" << "歌手" << "专辑" << "时长" << "收藏"; // 设置表头
    pModelForm2->setHorizontalHeaderLabels(list2);
    ui->tableViewF2->setModel(pModelForm2);

    // 设置定时器每5秒刷新一次
    QTimer *timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, &MusicForm2::loadRecentPlays);
    timer->start(500); // 每5秒刷新

    // 初始加载数据
    loadRecentPlays();
    ui->tableViewF2->verticalHeader()->setVisible(false);
}

void MusicForm2::loadRecentPlays() {
    // 清空模型
    pModelForm2->clear();
    // 重新设置表头
    QStringList list2 = QStringList() << "ID" << "歌曲名" << "歌手" << "专辑" << "时长" << "收藏";
    pModelForm2->setHorizontalHeaderLabels(list2);

    // 创建数据库查询
    QSqlQuery query;
    query.prepare("SELECT * FROM recent_plays"); // 查询recent_plays表中的所有数据

    // 执行查询
    if (!query.exec()) {
        qDebug() << "查询recent_plays表失败: " << query.lastError();
        return; // 退出函数
    }

    // 填充模型
    while (query.next()) {
        QList<QStandardItem*> rowItems; // 创建一行的项列表
        rowItems.append(new QStandardItem(query.value("id").toString())); // ID
        rowItems.append(new QStandardItem(query.value("song_name").toString())); // 歌曲名
        rowItems.append(new QStandardItem(query.value("singer").toString())); // 歌手
        rowItems.append(new QStandardItem(query.value("album").toString())); // 专辑
        rowItems.append(new QStandardItem(query.value("duration").toString())); // 时长
        rowItems.append(new QStandardItem(query.value("favorite").toString())); // 收藏状态

        // 将项添加到模型中
        pModelForm2->appendRow(rowItems);
    }
}

MusicForm2::~MusicForm2()
{
    delete ui;
}
